package com.gxa.eshop.core.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("轮播广告的实体类型")

/**
 * 使用JPA的方式, 将Banner和MongoDB中的数据绑定
 */
@Document(collection = "bannerList" )   //collection对标table
public class Banner implements Serializable {

    @ApiModelProperty("轮播广告对象的编号id")
    /*id字段被添加到mongodb的时候
    mongodb还会自动生成一个字段:"_id" ,
    目的是为每一个对象生成独一无二的objectid
    如果不加Field注解标注id的话,会解析为_id
    */

    @Field(value = "id")
    private String id;

    @ApiModelProperty("轮播广告对象的标题")
    @Field("title")
    private String title;

    @Field("image")
    @ApiModelProperty("轮播广告对象的图片的地址")
    private String image;

    @Field("url")
    @ApiModelProperty("轮播广告对象的点击超链接")
    private String url;

    @Field("position")
    @ApiModelProperty("轮播广告对象的位置")
    private String position;

//    声明一组常量,固定表示轮播广告所在的位置
    // 防止在操作过程中因人为原因将字符串设计错误导致偏差
    /**
     * // 首页
     */
    public static final String HOME="home";
    /**
     * 家电子页面
     */
    public static final String JD="jiadian";
    /**
     * 手机子页面
     */
    public static final String SJ="shouji";

    @Field("created")
    @ApiModelProperty("轮播广告对象的创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",timezone = "CST")
    private Date created;

}
